home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / Drag.a < prev    next >
Text File  |  1996-05-01  |  23KB  |  819 lines

  1. ;
  2. ;    File:        Drag.a
  3. ;
  4. ;    Contains:    Drag and Drop Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__DRAG__') = 'UNDEFINED' THEN
  19. __DRAG__ SET 1
  20.  
  21.     IF &TYPE('__SCRAP__') = 'UNDEFINED' THEN
  22.     include 'Scrap.a'
  23.     ENDIF
  24.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  25.     include 'AppleEvents.a'
  26.     ENDIF
  27.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  28.     include 'Quickdraw.a'
  29.     ENDIF
  30.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  31.     IF &TYPE('__TEXTEDIT__') = 'UNDEFINED' THEN
  32.     include 'TextEdit.a'
  33.     ENDIF
  34.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  35.     include 'Files.a'
  36.     ENDIF
  37.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  38.     include 'Events.a'
  39.     ENDIF
  40.     ENDIF
  41. ;
  42. ;_________________________________________________________________________________________________________
  43. ;    
  44. ; * DRAG MANAGER DATA TYPES
  45. ;      Currently there are two data types representing a drag in this interface file; ScrapRef and
  46. ;     DragReference.  It is safe to assume:
  47. ;     ScrapRef == DragReference
  48. ;     The two types can be used interchangably throughout the Drag interface file.  ScrapRef is the
  49. ;     new System 8 Drag Manager data type.  API's that are deprecated for System 8 will always
  50. ;     take a DragReference as their parameter.
  51. ;     For now though, use them interchangably.
  52. ;_________________________________________________________________________________________________________
  53. ;
  54. ; typedef ScrapRef                         DragReference
  55.  
  56. ; typedef ScrapRef                         DragScrapRef
  57.  
  58. ; typedef ScrapItemUserReference         ItemReference
  59.  
  60. ; typedef ScrapItemType                 FlavorType
  61.  
  62. ;
  63. ;_________________________________________________________________________________________________________
  64. ;    
  65. ; * DRAG ATTRIBUTES
  66. ;_________________________________________________________________________________________________________
  67. ;
  68. ; typedef OptionBits                     DragAttributes
  69.  
  70.  
  71. kDragHasLeftSenderWindow        EQU        $00000001            ; drag has left the source window since TrackDrag
  72. kDragInsideSenderApplication    EQU        $00000002            ; drag is occurring within the sender application
  73. kDragInsideSenderWindow            EQU        $00000004            ; drag is occurring within the sender window
  74. ;
  75. ;_________________________________________________________________________________________________________
  76. ;    
  77. ; * DRAG IMAGE FLAGS
  78. ;_________________________________________________________________________________________________________
  79. ;
  80. ; typedef OptionBits                     DragImageFlags
  81.  
  82.  
  83. kDragRegionAndImage                EQU        $00000010            ; drag region and image
  84. ;
  85. ;_________________________________________________________________________________________________________
  86. ;    
  87. ; * DRAG IMAGE TRANSLUCENCY LEVELS
  88. ;_________________________________________________________________________________________________________
  89. ;
  90. ; typedef UInt32                         DragImageTranslucency
  91.  
  92.  
  93. kDragStandardTranslucency        EQU        0                    ; 65% image translucency (standard)
  94. kDragDarkTranslucency            EQU        1                    ; 50% image translucency
  95. kDragDarkerTranslucency            EQU        2                    ; 25% image translucency
  96. kDragOpaqueTranslucency            EQU        3                    ; 0% image translucency (opaque)
  97. ;
  98. ;_________________________________________________________________________________________________________
  99. ;    
  100. ; * DRAG DRAWING PROCEDURE MESSAGES
  101. ;_________________________________________________________________________________________________________
  102. ;
  103. ; typedef SInt16                         DragRegionMessage
  104.  
  105.  
  106. kDragRegionBegin                EQU        1                    ; initialize drawing
  107. kDragRegionDraw                    EQU        2                    ; draw drag feedback
  108. kDragRegionHide                    EQU        3                    ; hide drag feedback
  109. kDragRegionIdle                    EQU        4                    ; drag feedback idle time
  110. kDragRegionEnd                    EQU        5                    ; end of drawing
  111. ;
  112. ;_________________________________________________________________________________________________________
  113. ;    
  114. ; * ZOOM ACCELERATION
  115. ;_________________________________________________________________________________________________________
  116. ;
  117. ; typedef SInt16                         ZoomAcceleration
  118.  
  119.  
  120. kZoomNoAcceleration                EQU        0                    ; use linear interpolation
  121. kZoomAccelerate                    EQU        1                    ; ramp up step size
  122. kZoomDecelerate                    EQU        2                    ; ramp down step size
  123.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  124. ;
  125. ;_________________________________________________________________________________________________________
  126. ;    
  127. ; * FLAVOR FLAGS
  128. ;_________________________________________________________________________________________________________
  129. ;
  130. ; typedef OptionBits                     FlavorFlags
  131.  
  132.  
  133. flavorSenderOnly                EQU        $01                    ; flavor is available to sender only
  134. flavorSenderTranslated            EQU        $02                    ; flavor is translated by sender
  135. flavorNotSaved                    EQU        $04                    ; flavor should not be saved
  136. flavorSystemTranslated            EQU        $0100                ; flavor is translated by system
  137. ;
  138. ;_________________________________________________________________________________________________________
  139. ;    
  140. ; * SPECIAL FLAVORS
  141. ;_________________________________________________________________________________________________________
  142. ;
  143.  
  144. flavorTypeHFS                    EQU        'hfs '                ; flavor type for HFS data
  145. flavorTypePromiseHFS            EQU        'phfs'                ; flavor type for promised HFS data
  146. flavorTypeDirectory                EQU        'diry'                ; flavor type for AOCE directories
  147. ;
  148. ;_________________________________________________________________________________________________________
  149. ;    
  150. ; * DRAG TRACKING HANDLER MESSAGES
  151. ;_________________________________________________________________________________________________________
  152. ;
  153. ; typedef SInt16                         DragTrackingMessage
  154.  
  155.  
  156. kDragTrackingEnterHandler        EQU        1                    ; drag has entered handler
  157. kDragTrackingEnterWindow        EQU        2                    ; drag has entered window
  158. kDragTrackingInWindow            EQU        3                    ; drag is moving within window
  159. kDragTrackingLeaveWindow        EQU        4                    ; drag has exited window
  160. kDragTrackingLeaveHandler        EQU        5                    ; drag has exited handler
  161. ;
  162. ;_________________________________________________________________________________________________________
  163. ;    
  164. ; * HFS FLAVORS
  165. ;_________________________________________________________________________________________________________
  166. ;
  167. HFSFlavor                RECORD 0
  168. fileType                 ds.l    1                ; offset: $0 (0)        ;  file type 
  169. fileCreator                 ds.l    1                ; offset: $4 (4)        ;  file creator 
  170. fdFlags                     ds.w    1                ; offset: $8 (8)        ;  Finder flags 
  171. fileSpec                 ds        FSSpec            ; offset: $A (10)        ;  file system specification 
  172. sizeof                     EQU *                    ; size:   $50 (80)
  173.                         ENDR
  174. PromiseHFSFlavor        RECORD 0
  175. fileType                 ds.l    1                ; offset: $0 (0)        ;  file type 
  176. fileCreator                 ds.l    1                ; offset: $4 (4)        ;  file creator 
  177. fdFlags                     ds.w    1                ; offset: $8 (8)        ;  Finder flags 
  178. promisedFlavor             ds.l    1                ; offset: $A (10)        ;  promised flavor containing an FSSpec 
  179. sizeof                     EQU *                    ; size:   $E (14)
  180.                         ENDR
  181. ;
  182. ;_________________________________________________________________________________________________________
  183. ;    
  184. ; * APPLICATION-DEFINED DRAG HANDLER ROUTINES
  185. ;_________________________________________________________________________________________________________
  186. ;
  187. ;
  188. ;_________________________________________________________________________________________________________
  189. ;    
  190. ; * APPLICATION-DEFINED ROUTINES
  191. ;_________________________________________________________________________________________________________
  192. ;
  193.     ENDIF
  194.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  195.     ENDIF
  196.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  197. ;
  198. ;_________________________________________________________________________________________________________
  199. ;    
  200. ; * INSTALLING AND REMOVING HANDLERS API'S
  201. ;_________________________________________________________________________________________________________
  202. ;
  203. ;
  204. ; pascal OSErr InstallTrackingHandler(DragTrackingHandlerUPP trackingHandler, WindowPtr theWindow, void *handlerRefCon)
  205. ;
  206.     IF ¨ GENERATINGCFM THEN
  207.         Macro
  208.         _InstallTrackingHandler
  209.             moveq               #1,D0
  210.             dc.w                $ABED
  211.         EndM
  212.     ELSE
  213.         IMPORT_CFM_FUNCTION InstallTrackingHandler
  214.     ENDIF
  215.  
  216. ;
  217. ; pascal OSErr InstallReceiveHandler(DragReceiveHandlerUPP receiveHandler, WindowPtr theWindow, void *handlerRefCon)
  218. ;
  219.     IF ¨ GENERATINGCFM THEN
  220.         Macro
  221.         _InstallReceiveHandler
  222.             moveq               #2,D0
  223.             dc.w                $ABED
  224.         EndM
  225.     ELSE
  226.         IMPORT_CFM_FUNCTION InstallReceiveHandler
  227.     ENDIF
  228.  
  229. ;
  230. ; pascal OSErr RemoveTrackingHandler(DragTrackingHandlerUPP trackingHandler, WindowPtr theWindow)
  231. ;
  232.     IF ¨ GENERATINGCFM THEN
  233.         Macro
  234.         _RemoveTrackingHandler
  235.             moveq               #3,D0
  236.             dc.w                $ABED
  237.         EndM
  238.     ELSE
  239.         IMPORT_CFM_FUNCTION RemoveTrackingHandler
  240.     ENDIF
  241.  
  242. ;
  243. ; pascal OSErr RemoveReceiveHandler(DragReceiveHandlerUPP receiveHandler, WindowPtr theWindow)
  244. ;
  245.     IF ¨ GENERATINGCFM THEN
  246.         Macro
  247.         _RemoveReceiveHandler
  248.             moveq               #4,D0
  249.             dc.w                $ABED
  250.         EndM
  251.     ELSE
  252.         IMPORT_CFM_FUNCTION RemoveReceiveHandler
  253.     ENDIF
  254.  
  255. ;
  256. ;_________________________________________________________________________________________________________
  257. ;    
  258. ; * CREATING & DISPOSING
  259. ;_________________________________________________________________________________________________________
  260. ;
  261. ;
  262. ; pascal OSErr NewDrag(DragReference *theDrag)
  263. ;
  264.     IF ¨ GENERATINGCFM THEN
  265.         Macro
  266.         _NewDrag
  267.             moveq               #5,D0
  268.             dc.w                $ABED
  269.         EndM
  270.     ELSE
  271.         IMPORT_CFM_FUNCTION NewDrag
  272.     ENDIF
  273.  
  274. ;
  275. ; pascal OSErr DisposeDrag(DragReference theDrag)
  276. ;
  277.     IF ¨ GENERATINGCFM THEN
  278.         Macro
  279.         _DisposeDrag
  280.             moveq               #6,D0
  281.             dc.w                $ABED
  282.         EndM
  283.     ELSE
  284.         IMPORT_CFM_FUNCTION DisposeDrag
  285.     ENDIF
  286.  
  287. ;
  288. ;_________________________________________________________________________________________________________
  289. ;    
  290. ; * ADDING DRAG ITEM FLAVORS
  291. ;_________________________________________________________________________________________________________
  292. ;
  293. ;
  294. ; pascal OSErr AddDragItemFlavor(DragReference theDrag, ItemReference theItemRef, FlavorType theType, const void *dataPtr, Size dataSize, FlavorFlags theFlags)
  295. ;
  296.     IF ¨ GENERATINGCFM THEN
  297.         Macro
  298.         _AddDragItemFlavor
  299.             moveq               #7,D0
  300.             dc.w                $ABED
  301.         EndM
  302.     ELSE
  303.         IMPORT_CFM_FUNCTION AddDragItemFlavor
  304.     ENDIF
  305.  
  306. ;
  307. ; pascal OSErr SetDragItemFlavorData(DragReference theDrag, ItemReference theItemRef, FlavorType theType, const void *dataPtr, Size dataSize, UInt32 dataOffset)
  308. ;
  309.     IF ¨ GENERATINGCFM THEN
  310.         Macro
  311.         _SetDragItemFlavorData
  312.             moveq               #9,D0
  313.             dc.w                $ABED
  314.         EndM
  315.     ELSE
  316.         IMPORT_CFM_FUNCTION SetDragItemFlavorData
  317.     ENDIF
  318.  
  319. ;
  320. ;_________________________________________________________________________________________________________
  321. ;    
  322. ; * PROVIDING CALLBACK PROCEDURES
  323. ;_________________________________________________________________________________________________________
  324. ;
  325. ;
  326. ; pascal OSErr SetDragSendProc(DragReference theDrag, DragSendDataUPP sendProc, void *dragSendRefCon)
  327. ;
  328.     IF ¨ GENERATINGCFM THEN
  329.         Macro
  330.         _SetDragSendProc
  331.             moveq               #10,D0
  332.             dc.w                $ABED
  333.         EndM
  334.     ELSE
  335.         IMPORT_CFM_FUNCTION SetDragSendProc
  336.     ENDIF
  337.  
  338.     ENDIF
  339.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  340. ;
  341. ; pascal OSErr SetDragInputProc(ScrapRef theDrag, DragInputUPP inputProc, void *dragInputRefCon)
  342. ;
  343.     IF ¨ GENERATINGCFM THEN
  344.         Macro
  345.         _SetDragInputProc
  346.             moveq               #11,D0
  347.             dc.w                $ABED
  348.         EndM
  349.     ELSE
  350.         IMPORT_CFM_FUNCTION SetDragInputProc
  351.     ENDIF
  352.  
  353. ;
  354. ; pascal OSErr SetDragDrawingProc(ScrapRef theDrag, DragDrawingUPP drawingProc, void *dragDrawingRefCon)
  355. ;
  356.     IF ¨ GENERATINGCFM THEN
  357.         Macro
  358.         _SetDragDrawingProc
  359.             moveq               #12,D0
  360.             dc.w                $ABED
  361.         EndM
  362.     ELSE
  363.         IMPORT_CFM_FUNCTION SetDragDrawingProc
  364.     ENDIF
  365.  
  366. ;
  367. ;_________________________________________________________________________________________________________
  368. ;    
  369. ; * SETTING THE DRAG IMAGE
  370. ;_________________________________________________________________________________________________________
  371. ;
  372. ;
  373. ; extern OSStatus SetDragImage(ScrapRef theDrag, PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags)
  374. ;
  375.     IF ¨ GENERATINGCFM THEN
  376.         Macro
  377.         _SetDragImage
  378.             moveq               #39,D0
  379.             dc.w                $ABED
  380.         EndM
  381.     ELSE
  382.         IMPORT_CFM_FUNCTION SetDragImage
  383.     ENDIF
  384.  
  385.     ENDIF
  386.     IF FOR_SYSTEM8_COOPERATIVE THEN
  387. ;
  388. ;_________________________________________________________________________________________________________
  389. ;    
  390. ; * SETTING THE DRAG IMAGE TRANSLUCENCY LEVEL
  391. ;_________________________________________________________________________________________________________
  392. ;
  393. ;
  394. ; extern OSStatus SetDragImageTranslucency(ScrapRef theDrag, DragImageTranslucency newLevel)
  395. ;
  396.     IF GENERATINGCFM THEN
  397.         IMPORT_CFM_FUNCTION SetDragImageTranslucency
  398.     ENDIF
  399.  
  400. ;
  401. ;_________________________________________________________________________________________________________
  402. ;    
  403. ; * PERFORMING A DRAG
  404. ;_________________________________________________________________________________________________________
  405. ;
  406. ;
  407. ; extern OSStatus TrackAEDrag(ScrapRef theDrag, AppleEvent *theEvent, RgnHandle theRegion)
  408. ;
  409.     IF GENERATINGCFM THEN
  410.         IMPORT_CFM_FUNCTION TrackAEDrag
  411.     ENDIF
  412.  
  413.     ENDIF
  414.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  415. ;
  416. ; pascal OSErr TrackDrag(DragReference theDrag, const EventRecord *theEvent, RgnHandle theRegion)
  417. ;
  418.     IF ¨ GENERATINGCFM THEN
  419.         Macro
  420.         _TrackDrag
  421.             moveq               #13,D0
  422.             dc.w                $ABED
  423.         EndM
  424.     ELSE
  425.         IMPORT_CFM_FUNCTION TrackDrag
  426.     ENDIF
  427.  
  428. ;
  429. ;_________________________________________________________________________________________________________
  430. ;    
  431. ; * GETTING DRAG ITEM INFORMATION
  432. ;_________________________________________________________________________________________________________
  433. ;
  434. ;
  435. ; pascal OSErr CountDragItems(DragReference theDrag, UInt16 *numItems)
  436. ;
  437.     IF ¨ GENERATINGCFM THEN
  438.         Macro
  439.         _CountDragItems
  440.             moveq               #14,D0
  441.             dc.w                $ABED
  442.         EndM
  443.     ELSE
  444.         IMPORT_CFM_FUNCTION CountDragItems
  445.     ENDIF
  446.  
  447. ;
  448. ; pascal OSErr GetDragItemReferenceNumber(DragReference theDrag, UInt16 index, ItemReference *theItemRef)
  449. ;
  450.     IF ¨ GENERATINGCFM THEN
  451.         Macro
  452.         _GetDragItemReferenceNumber
  453.             moveq               #15,D0
  454.             dc.w                $ABED
  455.         EndM
  456.     ELSE
  457.         IMPORT_CFM_FUNCTION GetDragItemReferenceNumber
  458.     ENDIF
  459.  
  460. ;
  461. ; pascal OSErr CountDragItemFlavors(DragReference theDrag, ItemReference theItemRef, UInt16 *numFlavors)
  462. ;
  463.     IF ¨ GENERATINGCFM THEN
  464.         Macro
  465.         _CountDragItemFlavors
  466.             moveq               #16,D0
  467.             dc.w                $ABED
  468.         EndM
  469.     ELSE
  470.         IMPORT_CFM_FUNCTION CountDragItemFlavors
  471.     ENDIF
  472.  
  473. ;
  474. ; pascal OSErr GetFlavorType(DragReference theDrag, ItemReference theItemRef, UInt16 index, FlavorType *theType)
  475. ;
  476.     IF ¨ GENERATINGCFM THEN
  477.         Macro
  478.         _GetFlavorType
  479.             moveq               #17,D0
  480.             dc.w                $ABED
  481.         EndM
  482.     ELSE
  483.         IMPORT_CFM_FUNCTION GetFlavorType
  484.     ENDIF
  485.  
  486. ;
  487. ; pascal OSErr GetFlavorFlags(DragReference theDrag, ItemReference theItemRef, FlavorType theType, FlavorFlags *theFlags)
  488. ;
  489.     IF ¨ GENERATINGCFM THEN
  490.         Macro
  491.         _GetFlavorFlags
  492.             moveq               #18,D0
  493.             dc.w                $ABED
  494.         EndM
  495.     ELSE
  496.         IMPORT_CFM_FUNCTION GetFlavorFlags
  497.     ENDIF
  498.  
  499. ;
  500. ; pascal OSErr GetFlavorDataSize(DragReference theDrag, ItemReference theItemRef, FlavorType theType, Size *dataSize)
  501. ;
  502.     IF ¨ GENERATINGCFM THEN
  503.         Macro
  504.         _GetFlavorDataSize
  505.             moveq               #19,D0
  506.             dc.w                $ABED
  507.         EndM
  508.     ELSE
  509.         IMPORT_CFM_FUNCTION GetFlavorDataSize
  510.     ENDIF
  511.  
  512. ;
  513. ; pascal OSErr GetFlavorData(DragReference theDrag, ItemReference theItemRef, FlavorType theType, void *dataPtr, Size *dataSize, UInt32 dataOffset)
  514. ;
  515.     IF ¨ GENERATINGCFM THEN
  516.         Macro
  517.         _GetFlavorData
  518.             moveq               #20,D0
  519.             dc.w                $ABED
  520.         EndM
  521.     ELSE
  522.         IMPORT_CFM_FUNCTION GetFlavorData
  523.     ENDIF
  524.  
  525.     ENDIF
  526.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  527. ;
  528. ;_________________________________________________________________________________________________________
  529. ;    
  530. ; * DRAG ITEM BOUNDS
  531. ;_________________________________________________________________________________________________________
  532. ;
  533. ;
  534. ; pascal OSErr GetDragItemBounds(ScrapRef theDrag, ItemReference theItemRef, Rect *itemBounds)
  535. ;
  536.     IF ¨ GENERATINGCFM THEN
  537.         Macro
  538.         _GetDragItemBounds
  539.             moveq               #21,D0
  540.             dc.w                $ABED
  541.         EndM
  542.     ELSE
  543.         IMPORT_CFM_FUNCTION GetDragItemBounds
  544.     ENDIF
  545.  
  546. ;
  547. ; pascal OSErr SetDragItemBounds(ScrapRef theDrag, ItemReference theItemRef, const Rect *itemBounds)
  548. ;
  549.     IF ¨ GENERATINGCFM THEN
  550.         Macro
  551.         _SetDragItemBounds
  552.             moveq               #22,D0
  553.             dc.w                $ABED
  554.         EndM
  555.     ELSE
  556.         IMPORT_CFM_FUNCTION SetDragItemBounds
  557.     ENDIF
  558.  
  559. ;
  560. ;_________________________________________________________________________________________________________
  561. ;    
  562. ; * DROP LOCATIONS
  563. ;_________________________________________________________________________________________________________
  564. ;
  565. ;
  566. ; pascal OSErr GetDropLocation(ScrapRef theDrag, AEDesc *dropLocation)
  567. ;
  568.     IF ¨ GENERATINGCFM THEN
  569.         Macro
  570.         _GetDropLocation
  571.             moveq               #23,D0
  572.             dc.w                $ABED
  573.         EndM
  574.     ELSE
  575.         IMPORT_CFM_FUNCTION GetDropLocation
  576.     ENDIF
  577.  
  578. ;
  579. ; pascal OSErr SetDropLocation(ScrapRef theDrag, const AEDesc *dropLocation)
  580. ;
  581.     IF ¨ GENERATINGCFM THEN
  582.         Macro
  583.         _SetDropLocation
  584.             moveq               #24,D0
  585.             dc.w                $ABED
  586.         EndM
  587.     ELSE
  588.         IMPORT_CFM_FUNCTION SetDropLocation
  589.     ENDIF
  590.  
  591. ;
  592. ;_________________________________________________________________________________________________________
  593. ;    
  594. ; * GETTING INFORMATION ABOUT A DRAG
  595. ;_________________________________________________________________________________________________________
  596. ;
  597. ;
  598. ; pascal OSErr GetDragAttributes(ScrapRef theDrag, DragAttributes *flags)
  599. ;
  600.     IF ¨ GENERATINGCFM THEN
  601.         Macro
  602.         _GetDragAttributes
  603.             moveq               #25,D0
  604.             dc.w                $ABED
  605.         EndM
  606.     ELSE
  607.         IMPORT_CFM_FUNCTION GetDragAttributes
  608.     ENDIF
  609.  
  610. ;
  611. ; pascal OSErr GetDragMouse(ScrapRef theDrag, Point *mouse, Point *globalPinnedMouse)
  612. ;
  613.     IF ¨ GENERATINGCFM THEN
  614.         Macro
  615.         _GetDragMouse
  616.             moveq               #26,D0
  617.             dc.w                $ABED
  618.         EndM
  619.     ELSE
  620.         IMPORT_CFM_FUNCTION GetDragMouse
  621.     ENDIF
  622.  
  623. ;
  624. ; pascal OSErr SetDragMouse(ScrapRef theDrag, Point globalPinnedMouse)
  625. ;
  626.     IF ¨ GENERATINGCFM THEN
  627.         Macro
  628.         _SetDragMouse
  629.             moveq               #27,D0
  630.             dc.w                $ABED
  631.         EndM
  632.     ELSE
  633.         IMPORT_CFM_FUNCTION SetDragMouse
  634.     ENDIF
  635.  
  636. ;
  637. ; pascal OSErr GetDragOrigin(ScrapRef theDrag, Point *globalInitialMouse)
  638. ;
  639.     IF ¨ GENERATINGCFM THEN
  640.         Macro
  641.         _GetDragOrigin
  642.             moveq               #28,D0
  643.             dc.w                $ABED
  644.         EndM
  645.     ELSE
  646.         IMPORT_CFM_FUNCTION GetDragOrigin
  647.     ENDIF
  648.  
  649. ;
  650. ; pascal OSErr GetDragModifiers(ScrapRef theDrag, SInt16 *modifiers, SInt16 *mouseDownModifiers, SInt16 *mouseUpModifiers)
  651. ;
  652.     IF ¨ GENERATINGCFM THEN
  653.         Macro
  654.         _GetDragModifiers
  655.             moveq               #29,D0
  656.             dc.w                $ABED
  657.         EndM
  658.     ELSE
  659.         IMPORT_CFM_FUNCTION GetDragModifiers
  660.     ENDIF
  661.  
  662. ;
  663. ;_________________________________________________________________________________________________________
  664. ;    
  665. ; * DRAG HIGHLIGHTING
  666. ;_________________________________________________________________________________________________________
  667. ;
  668. ;
  669. ; pascal OSErr ShowDragHilite(ScrapRef theDrag, RgnHandle hiliteFrame, Boolean inside)
  670. ;
  671.     IF ¨ GENERATINGCFM THEN
  672.         Macro
  673.         _ShowDragHilite
  674.             moveq               #30,D0
  675.             dc.w                $ABED
  676.         EndM
  677.     ELSE
  678.         IMPORT_CFM_FUNCTION ShowDragHilite
  679.     ENDIF
  680.  
  681. ;
  682. ; pascal OSErr HideDragHilite(ScrapRef theDrag)
  683. ;
  684.     IF ¨ GENERATINGCFM THEN
  685.         Macro
  686.         _HideDragHilite
  687.             moveq               #31,D0
  688.             dc.w                $ABED
  689.         EndM
  690.     ELSE
  691.         IMPORT_CFM_FUNCTION HideDragHilite
  692.     ENDIF
  693.  
  694. ;
  695. ; pascal OSErr DragPreScroll(ScrapRef theDrag, SInt16 dH, SInt16 dV)
  696. ;
  697.     IF ¨ GENERATINGCFM THEN
  698.         Macro
  699.         _DragPreScroll
  700.             moveq               #32,D0
  701.             dc.w                $ABED
  702.         EndM
  703.     ELSE
  704.         IMPORT_CFM_FUNCTION DragPreScroll
  705.     ENDIF
  706.  
  707. ;
  708. ; pascal OSErr DragPostScroll(ScrapRef theDrag)
  709. ;
  710.     IF ¨ GENERATINGCFM THEN
  711.         Macro
  712.         _DragPostScroll
  713.             moveq               #33,D0
  714.             dc.w                $ABED
  715.         EndM
  716.     ELSE
  717.         IMPORT_CFM_FUNCTION DragPostScroll
  718.     ENDIF
  719.  
  720. ;
  721. ; pascal OSErr UpdateDragHilite(ScrapRef theDrag, RgnHandle updateRgn)
  722. ;
  723.     IF ¨ GENERATINGCFM THEN
  724.         Macro
  725.         _UpdateDragHilite
  726.             moveq               #34,D0
  727.             dc.w                $ABED
  728.         EndM
  729.     ELSE
  730.         IMPORT_CFM_FUNCTION UpdateDragHilite
  731.     ENDIF
  732.  
  733.     ENDIF
  734. ;
  735. ;_________________________________________________________________________________________________________
  736. ;    
  737. ; * UTILITIES
  738. ;_________________________________________________________________________________________________________
  739. ;
  740.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  741. ;
  742. ; pascal Boolean WaitMouseMoved(Point initialMouse)
  743. ;
  744.     IF ¨ GENERATINGCFM THEN
  745.         Macro
  746.         _WaitMouseMoved
  747.             moveq               #35,D0
  748.             dc.w                $ABED
  749.         EndM
  750.     ELSE
  751.         IMPORT_CFM_FUNCTION WaitMouseMoved
  752.     ENDIF
  753.  
  754.     ENDIF
  755.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  756. ;
  757. ; pascal OSErr ZoomRects(const Rect *fromRect, const Rect *toRect, SInt16 zoomSteps, ZoomAcceleration acceleration)
  758. ;
  759.     IF ¨ GENERATINGCFM THEN
  760.         Macro
  761.         _ZoomRects
  762.             moveq               #36,D0
  763.             dc.w                $ABED
  764.         EndM
  765.     ELSE
  766.         IMPORT_CFM_FUNCTION ZoomRects
  767.     ENDIF
  768.  
  769. ;
  770. ; pascal OSErr ZoomRegion(RgnHandle region, Point zoomDistance, SInt16 zoomSteps, ZoomAcceleration acceleration)
  771. ;
  772.     IF ¨ GENERATINGCFM THEN
  773.         Macro
  774.         _ZoomRegion
  775.             moveq               #37,D0
  776.             dc.w                $ABED
  777.         EndM
  778.     ELSE
  779.         IMPORT_CFM_FUNCTION ZoomRegion
  780.     ENDIF
  781.  
  782.     ENDIF
  783.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  784. ;
  785. ;_________________________________________________________________________________________________________
  786. ; * OLD NAMES
  787. ;   These are provided for compatiblity with older source bases.  It is recommended to not use them since
  788. ;     they may removed from this interface file at any time.
  789. ;_________________________________________________________________________________________________________
  790. ;
  791.  
  792. dragHasLeftSenderWindow            EQU        $00000001            ; drag has left the source window since TrackDrag 
  793. dragInsideSenderApplication        EQU        $00000002            ; drag is occurring within the sender application 
  794. dragInsideSenderWindow            EQU        $00000004            ; drag is occurring within the sender window 
  795.  
  796. dragTrackingEnterHandler        EQU        1                    ; drag has entered handler 
  797. dragTrackingEnterWindow            EQU        2                    ; drag has entered window 
  798. dragTrackingInWindow            EQU        3                    ; drag is moving within window 
  799. dragTrackingLeaveWindow            EQU        4                    ; drag has exited window 
  800. dragTrackingLeaveHandler        EQU        5                    ; drag has exited handler 
  801.  
  802. dragRegionBegin                    EQU        1                    ; initialize drawing 
  803. dragRegionDraw                    EQU        2                    ; draw drag feedback 
  804. dragRegionHide                    EQU        3                    ; hide drag feedback 
  805. dragRegionIdle                    EQU        4                    ; drag feedback idle time 
  806. dragRegionEnd                    EQU        5                    ; end of drawing 
  807.  
  808. zoomNoAcceleration                EQU        0                    ; use linear interpolation 
  809. zoomAccelerate                    EQU        1                    ; ramp up step size 
  810. zoomDecelerate                    EQU        2                    ; ramp down step size 
  811.  
  812. kDragStandardImage                EQU        0                    ; 65% image translucency (standard)
  813. kDragDarkImage                    EQU        1                    ; 50% image translucency
  814. kDragDarkerImage                EQU        2                    ; 25% image translucency
  815. kDragOpaqueImage                EQU        3                    ; 0% image translucency (opaque)
  816.     ENDIF
  817.     ENDIF ; __DRAG__ 
  818.  
  819.